package com.marketfarm.shared.entity;

import java.io.Serializable;

import javax.jdo.PersistenceManager;
import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.NotPersistent;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.marketfarm.server.dao.DAO;
import com.marketfarm.shared.entity.Item.TipoItem;

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Ordem extends LoadableEntity implements Serializable{

	public static enum TipoOrdem{
		VENDA, COMPRA;
	}
	
	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
    private String key;
	private TipoItem tipoItem;
	private Integer quantidade;
	private Double preco;
	private TipoOrdem tipoOrdem;
	private String usuarioKey;
	
	@NotPersistent
	private Usuario usuario;
	
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}
	public TipoItem getTipoItem() {
		return tipoItem;
	}
	public void setTipoItem(TipoItem tipoItem) {
		this.tipoItem = tipoItem;
	}
	public Integer getQuantidade() {
		return quantidade;
	}
	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}
	public Double getPreco() {
		return preco;
	}
	public void setPreco(Double preco) {
		this.preco = preco;
	}
	public TipoOrdem getTipoOrdem() {
		return tipoOrdem;
	}
	public void setTipoOrdem(TipoOrdem tipoOrdem) {
		this.tipoOrdem = tipoOrdem;
	}
	public String getUsuarioKey() {
		return usuarioKey;
	}
	public void setUsuarioKey(String usuarioKey) {
		this.usuarioKey = usuarioKey;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	@Override
	public void load(DAO dao, PersistenceManager pm) throws Exception {
		usuario = (Usuario)dao.load(pm, Usuario.class, usuarioKey);
	}
	
}
